package com.taotaojs.mybootsuper.mapper;

import org.apache.ibatis.annotations.*;

import java.util.List;

/**
 * 自定义基本通用Mapper方法
 * @author: TaoTaojs
 * @Date: 2020年03月20日15:49:46
 * @Description:
 * 可自定义通用mapper方法，后期可以设置相关的查询条件对象映射类
 * @关联类:
 * @参考链接：
 */
public interface MyBasicMapper<T> {

    /**
     * 直接根据sql查询数据
     *  - 直接传入string
     *  - 传入SQL对象
     * @param sql
     * @return
     */
    @SelectProvider(type=MyBasicProvider.class, method="dynamicSQL")
    List<T> findBySql(@Param("sql") String sql);

    /**
     * 使用sql字符串更新数据
     * @param sql
     * @return
     */
    @UpdateProvider(type=MyBasicProvider.class, method="dynamicSQL")
    Integer updateBySql(@Param("sql") String sql);

    /**
     * 使用sql字符串删除数据
     * @param sql
     * @return
     */
    @DeleteProvider(type=MyBasicProvider.class, method="dynamicSQL")
    Integer deleteBySql(@Param("sql") String sql);

    /**
     * 使用sql字符串插入数据
     * @param sql
     * @return
     */
    @InsertProvider(type=MyBasicProvider.class, method="dynamicSQL")
    Integer insertBySql(@Param("sql") String sql);

}
